package com.example.cola.knowledge.knowledgebase.api;

import com.example.cola.common.dto.CommonResult;
import com.example.cola.common.dto.PageResult;
import com.example.cola.common.dto.PagedData;
import com.example.cola.knowledge.knowledgebase.dto.KnowledgeBaseDTO;
import com.example.cola.knowledge.knowledgebase.request.*;

import java.util.List;

public interface KnowledgeBaseHsfService {
	/*
	 * 创建方法
	 * 1.创建方法的前缀一般用create【推荐】或add，如果是批量创建用batchCreate替代Create
	 * 2.创建的返回值用DTO【推荐】或Void
	 */
	// 推荐
	CommonResult<KnowledgeBaseDTO> createKnowledgeBase(KnowledgeBaseCreateRequest request);

	CommonResult<Void> createKnowledgeBase2(KnowledgeBaseCreateRequest request);

	CommonResult<KnowledgeBaseDTO> addKnowledgeBase(KnowledgeBaseAddRequest request);

	CommonResult<Void> addKnowledgeBase2(KnowledgeBaseAddRequest request);

	/*
	 * 删除方法
	 */
	// 推荐
	CommonResult<KnowledgeBaseDTO> deleteKnowledgeBase(KnowledgeBaseDeleteRequest request);

	CommonResult<Void> deleteKnowledgeBase2(KnowledgeBaseDeleteRequest request);

	/*
	 * 修改方法
	 */
	// 推荐
	CommonResult<KnowledgeBaseDTO> updateKnowledgeBase(KnowledgeBaseUpdateRequest request);

	CommonResult<Void> updateKnowledgeBase2(KnowledgeBaseUpdateRequest request);

	/*
	 * 查询方法
	 */
	// 单个查询你
	CommonResult<KnowledgeBaseDTO> getKnowledgeBase(KnowledgeBaseGetRequest request);

	// 列表查询
	CommonResult<List<KnowledgeBaseDTO>> listKnowledgeBases(KnowledgeBaseListRequest request);

	// 分页查询，命名用pageKnowledgeBases更好
	CommonResult<PagedData<List<KnowledgeBaseDTO>>> queryKnowledgeBases(KnowledgeBaseQueryRequest request);

	PageResult<KnowledgeBaseDTO>  pageKnowledgeBases(KnowledgeBasePageRequest request);

}
